Appears in PhysComp96 Workshop on Physics and Computation A logically reversible evaluator for the call-by-name lambda calculus
نویسنده
چکیده
We present an evaluator for the call-by-name lambda calculus that is logically reversible. This evaluator is therefore a candidate for a computation mechanism that does not dissipate energy due to information erasure. Our design extends Landin's SECD evaluator for the lambda calculus with a history tape H|as in Bennett's constructions of reversible Turing machines|and is hence called SECD-H. The history tape records su cient information to supply each state of a computation with a unique predecessor state. H can therefore be used to reverse the computation and to reset the machine. Since the lambda calculus is a model for realistic programming languages, SECD-H can, unlike a reversible TM, be directly used to simulate reversible computation of large and complex programs. We provide a complete implementation of SECD-H for such purposes.
منابع مشابه
A functional correspondence between call-by-need evaluators and lazy abstract machines
We bridge the gap between compositional evaluators and abstract machines for the lambda-calculus, using closure conversion, transformation into continuation-passing style, and defunctionalization of continuations. This article is a spin-off of our article at PPDP 2003, where we consider call by name and call by value. Here, however, we consider call by need. We derive a lazy abstract machine fr...
متن کاملA Context-based Approach to Proving Termination of Evaluation
We show a context-based approach to proving termination of evaluation in reduction semantics (i.e., a form of operational semantics with explicit representation of reduction contexts), using Tait-style reducibility predicates defined on both terms and contexts. We consider the simply typed lambda calculus as well as its extension with abortive control operators for first-class continuations und...
متن کاملA universal realizability model for sequential functional computation
We construct a universal and even logically fully abstract realizability model for the sequential functional programming language of call-by-name FPC. This model is defined within the category of modest sets over the total combinatory algebra L of observational equivalence classes of closed terms of the untyped programming language λ+Error. This language is untyped lazy call-by-name lambda-calc...
متن کاملContinuation calculus
Programs with control are usually modeled using lambda calculus extended with control operators. Instead of modifying lambda calculus, we consider a different model of computation. We introduce continuation calculus, or CC, a deterministic model of computation that is evaluated using only head reduction, and argue that it is suitable for modeling programs with control. It is demonstrated how to...
متن کاملOn Evaluation Contexts, Continuations, and the Rest of the Computation
Continuations are variously understood as representations of the current evaluation context and as representations of the rest of the computation, but these understandings contradict each other: plugging an expression in a context yields a new expression whereas sending an intermediate result to a continuation yields the final answer. We show that continuations-as-evaluation-contexts are the de...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002